今日我們要學習的是選單 Menu,
以及下拉選單OptionMenu / ttk.Combobox。
馬上就讓我們開始今日的學習!
在視窗中,
我們可以使用 tkinter 的 Menu 選單元件,
在左上方加入具有功能性的「選單」,
讓使用者可以查看所有選項。
我們建立一個主選單 Menu,
並在 Menu 中再建立一個子選單
使用 add_command() 方法增加選單項目。
執行後就會在視窗中出現選單。
我們可以使用多項 Menu 設計多層串聯選單,
這需要用到 add_cascade() 方法,
此方法為設立父選單,並在其中新增子選單內容。
這裡我們另外說一個小應用,
若我們要設立一個可以關閉視窗的選項,
我們可以用 destory() 方法,
並對視窗執行,就可以關閉視窗啦!
我們執行後可以看見,
出現了color選單,裡面有light和dark,
而這兩者裡面又各自有自己的選單。
OptionMenu是用來讓使用者可以使用「下拉選單」進行選取特定的選項的物件。
在OptionMenu方法中,
必要的參數有三個:
第一個表示要加入的視窗物件,
第二個是 tk 變數,表示選單選擇以及顯示的項目,
第三個開始是選單內容。
執行後,我們可以看見下拉選單。
3. ttk.Combobox
Combobox下拉選單是tkinter的ttk加強模組裡的元件,
他可以讓我們使用「下拉選單」進行選取特定的選項。
我們使用其方法就可以建立選單,
並直接賦予選單一個值,
值內為選單內容。
下圖為執行結果。
最後我們來說明,
Optionmenu 和 ttk.Combobox 的區別:
1.模組來源
OptionMenu:屬於 Tkinter 的標準元件,
由 tk.OptionMenu 提供。
ttk.Combobox:屬於 ttk 模組(Tkinter 的主題和樣式擴展庫),
由 ttk.Combobox 提供。
2.外觀
OptionMenu:使用的是 Tkinter 的標準樣式,
外觀較為簡單和基礎。
ttk.Combobox:外觀更現代,
因為它使用了 ttk 的樣式系統,
會根據操作系統的主題調整外觀,看起來更專業。
3.功能性
OptionMenu:
只能顯示選單中的選項,選擇其中一項後該選項會被顯示在按鈕上。
不能讓使用者自行輸入其他的值,只能從預設的選項中進行選擇。
ttk.Combobox:
不僅可以選擇選項,還允許使用者手動輸入內容(需設置為可編輯模式)。
提供更多的功能和選項,例如設置選單是否可編輯。
且它支援自動完成的功能,
可以輸入部分文本來選擇列表中的匹配項目。
4.互動性
OptionMenu:
選單項目是固定的,使用者不能修改或輸入新選項。
ttk.Combobox:
可以設置為只允許選擇選項,或允許輸入新值。
通過 state 屬性設置為 "readonly" 時,變成只可選擇的下拉框,否則可手動輸入。
以上為今日的學習,
我覺得今天Menu的部分比較複雜,
也花了很多時間去理解,最後也是成功做出。
參考資料:
https://steam.oxxostudio.tw/category/python/tkinter/combobox.html
https://yhhuang1966.blogspot.com/2021/10/python-gui-tkinter-menu.html